A conventional data reproduction apparatus that reproduces data from a disk as a storage medium with digitalized moving picture stored therein is described as a variable-rate-sensitive data reproduction apparatus as shown in FIG. 35 in the applicant's Japanese Patent Laid Open No. 6-124,168 (publicized on May 6, 1994). This reproduction apparatus reproduces data stored on an optical disk 101 using a pickup 102. The pickup 102 irradiates the optical disk 101 with laser beams and uses light reflected from the optic disk 101 to reproduce the data stored therein. Signals reproduced by the pickup 102 are delivered to a demodulator 103. The demodulator 103 demodulates the reproduced signals output by the optic pickup 102 to output them to a sector detector 104.
The sector detector 104 detects an address stored in each sector from the delivered data to output it to a ring buffer control circuit 106. It also outputs the data to an ECC circuit 105 located after the sector detector while maintaining sector synchronization. The sector detector 104 outputs a sector number error signal to a track jump determination circuit 118 via the ring buffer control circuit 106 if the detector fails to detect addresses or if detected addresses are not continuous.
The ECC circuit 105 detects an error in data supplied by the sector detector 104, and uses redundant bits contained in the data to correct the error to output the corrected data to a ring buffer memory (FIFO) 107 for the ring jump. Furthermore, if the ECC circuit 105 fails to correct an error in data, it outputs an error generation signal to the track jump determination circuit 118.
The ring buffer control circuit 106 controls writes to and reads from the ring buffer memory 107, and monitors a code request signal requesting data output from a multiplexed data separation circuit 108.
The track jump determination circuit 118 monitors the output of the ring buffer control circuit 106 to output a track jump signal to a tracking servo circuit 117 as required to track-jump the reproduction position of the pickup 102 relative to the optical disk 101. The track jump determination circuit 118 also detects a sector number error signal from the sector detector 104 or an error generation signal from the ECC circuit 105 to output the track jump signal to the tracking servo circuit 117 to track-jump the reproduction position of the pickup 102.
The output of the ring buffer memory 107 is supplied to the multiplexed data separation circuit 108. A header separation circuit 109 in the multiplexed data separation circuit 108 separates pack headers and packet headers from data supplied from the ring buffer memory 107 to deliver them to a separator control 111, and supplies time-division-multiplexed data to the input terminal G of a switching circuit 110. The output terminals (switched terminals) H1, H2 of the switching circuit 110 are connected to the input terminals of a video code buffer 113 and an audio code buffer 115, respectively. The output of the video code buffer 115 is connected to the input of a video decoder 114, while the output of the audio code buffer 115 is connected to the input of an audio decoder 116.
In addition, code request signals generated by a video decoder 114 are input to the video code buffer 113, while code request signals generated by the video code buffer 113 are input to the multiplexed data separation circuit 108. Similarly, code request signals issued by an audio decoder 116 are input to the audio code buffer 115, while code request signals issued by the audio code buffer 115 are input to the multiplexed data separation circuit 108.
The operation of each component of this data reproduction apparatus is described next. The pickup 102 irradiates the optical disk 101 with laser beams, and uses light reflected from the optical disk to reproduce the data stored therein. Reproduced signals output by the pickup 102 are input to the demodulator 103 for demodulation. The data demodulated by the demodulator 103 is input to the ECC circuit 105 via the sector detector 104 to detect and correct an error.
A sector number error signal is output to the track jump determination circuit 118 if the sector detector 104 fails to detect sector numbers (the addresses assigned to the sectors of the optical disk 101) correctly. The ECC circuit 105 outputs an error generation signal to the track jump determination circuit 118 if an uncorrectable error is occurring in the data. Corrected data is delivered from the ECC circuit 105 to the ring buffer memory 107 for storage.
The ring buffer control circuit 106 reads the address of each sector from the output of the sector detector 104 to designate the write address (write point (WP)) on the ring buffer memory 107 corresponding to the address of the sector. The ring buffer control 106 also designates read addresses (reproduction points (RPs)) for the data written to the ring buffer memory 107 based on a code request signal from the multiplexed data separation circuit 108 located after the ring buffer control. It then reads data from the reproduction points (RP) to supply them to the multiplexed data separation circuit 108.
The head separation circuit 109 in the multiplexed data separation circuit 108 separates pack headers and packet headers from the data delivered by the ring buffer memory 107 to supply them to the separation circuit control circuit 111. The separation circuit control circuit 111 sequentially connects the input terminal G of the switching circuit 110 to the output terminal (switched terminal) H1 or H2 thereof according to the stream ID information in the packet headers delivered from the header separation circuit 109 to separate the time-division-multiplexed data correctly. It then supplies the data to the corresponding data buffer 113 or 115.
The video code buffer 113 issues a code request signal to the multiplexed data separation circuit 108 using the available section of its internal code buffer. The buffer 113 then stores received data. It also receives code request signals from the video decoder 114 to output data it contains. The video decoder 114 reproduces video signals from the supplied data to output them from the output terminal.
The audio code buffer 115 issues a code request signal to the multiplexed data separation circuit 108 using the available section of its internal code buffer. The buffer 115 then stores received data. It also receives code request signals from the audio decoder 116 and outputs data it contains. The audio decoder 116 reproduces audio signals from the supplied data to output them from the output terminal.
The video decoder 114 thus requests data from the video code buffer 113, while the video code buffer 113 requests data from the multiplexed data separation circuit 108. The multiplexed data separation circuit 108 in turn requests data from the ring buffer control circuit 106. In this case, data flows from the ring buffer memory 107 in the direction reverse to the request.
For example, reads from the ring buffer memory 107 decrease with the decreasing amount of data consumed by the video decoder 114 per unit time due to continuous data processing for simple screens. In this case, the amount of data stored in the ring buffer memory 107 may increase, resulting in overflow. The track jump determination circuit 118 thus uses write points (WPs) and reproduction points (RPs) to calculate the amount of data currently stored in the ring buffer memory 107 and, if the data exceeds a predetermined criteria, determines that the ring buffer memory may overflow to output a track jump instruction to the tracking servo circuit 117.
If the track jump determination circuit 118 detects a selector number error signal from the sector detector 104 or an error generation signal from the ECC circuit 105, it uses write addresses (WPs) and read addresses (RPs) to calculate the amount of data remaining in the ring buffer memory 107 and the amount of data required to ensure reads from the ring buffer memory 107 to the multiplexed data separation circuit 108 while the optical disk 101 is making a single rotation from the current track position (that is, while waiting for the optical disk 101 to make a single rotation).
If a large amount of data remains in the ring buffer memory 107, the track jump determination circuit 118 determines that the error can be recovered by forcing the pickup 102 to retry to reproduce data from the position where the error has occurred and outputs a track jump instruction to the tracking servo circuit 117 because an underflow does not occur even if data is read from the ring buffer memory 107 at the maximum transfer rate.
When the track jump instruction is output from the track jump determination circuit 118, for example, the tracking servo circuit 117 forces the pickup 102 to jump from position A to position B inner-circumferentially one track off from position A, as shown in FIG. 13. The ring buffer control circuit 106 inhibits new data from being written to the ring buffer memory 107 and the data stored in the ring buffer memory 107 is transferred to the multiplexed data separation circuit 108 as required until the optical disk makes another single rotation from position B to position A, that is, until the sector number obtained from the sector detector 104 becomes equal to that obtained before the track jump.
Even when the sector number obtained from the sector detector 104 becomes equal to that obtained before the track jump, writes to the ring buffer memory 107 are not restarted and another track jump is performed if the amount of data stored in the ring buffer memory 107 exceeds the predetermined criteria, that is, if the ring buffer memory 107 may overflow. The data reproduction apparatus can thus use the ring buffer memory 107 to address a variable rate and to carry out retries on errors.
The usefulness of this conventional data reproduction apparatus can be substantially improved by synchronously reproducing multiplexed data with video, audio, and superimposed dialogue data compressed at a variable rate in conformity with ISO11172 (MPEG1) or ISO13818 (MPEG2) while correcting synchronization errors and to perform a search, a halt, or a frame feed operation on errors.